package com.huikeportal.service;

import java.util.List;

import com.huikeportal.model.AspnetUsers;
import com.huikeportal.model.UserInfo;

/**
 * 共通service 提供一些共通访问方法
 * 
 * @author winner
 * 
 */
public interface CommonService {

	/**
	 * 动态获取指标权限
	 * 
	 * @param userIndex
	 *            用户指标权限
	 * @param moduleId
	 *            菜单模块id，比如：我的数据_实时指标是1_1
	 * @param siteType
	 *            场所类型，比如：集团是100
	 * @param dateType
	 *            日期类型，比如：时是1、日是2
	 * @return
	 * @throws Exception
	 */
	public List<String> getIndexList(List<String> userIndex, String moduleId,
			String siteType, String dateType) throws Exception;

	/**
	 * 
	 * @param userIndex
	 *            用户指标权限
	 * @param moduleId
	 *            菜单模块id，比如：我的数据_实时指标是1_1
	 * @param siteType场所类型
	 *            ，比如：集团是100
	 * @return
	 * @throws Exception
	 */
	public List<String> getIndexListOfModel(List<String> userIndex,
			String moduleId, String siteType) throws Exception;

	/**
	 * 
	 * @param dateType日期类型
	 *            ，比如：时是1、日是2
	 * @return
	 * @throws Exception
	 */
	public List<String> getIndexListOfDate(String dateType) throws Exception;

	/**
	 * 判断项目是否拥有视频、wifi等指标
	 * 
	 * @param gcSiteId
	 *            广场场所id
	 * @param qySiteId
	 *            区域场所id
	 * @param lcSiteId
	 *            楼层场所id
	 * @param siteType
	 *            要判断的场所类型：0：区域、1：楼层
	 * @param indexType
	 *            要判断的指标类型：0：视频客流、1：wifi探针
	 * @return
	 * @throws Exception
	 */
	public boolean isGcHaveIndex(String gcSiteId, String qySiteId,
			String lcSiteId, String siteType, String indexType)
			throws Exception;
	
	/**
	 * 根据用户名获取用户信息
	 * @param userInfo
	 * @return
	 */
	public AspnetUsers getaspnetUsersMapper(UserInfo userInfo);
	
	
	/**
	 * 判断字符串是否是有效的日期格式
	 * @param date
	 * @return
	 */
	public boolean isDateStr(String date);
	
	/**
	  * 得到某周周日n为推迟的周数，1本周周末，0上周周末 -1上上周周末，依次类推
	  * @param int n
	  * @return yyyy-MM-dd
	  */
	public  String getSundayOfWeek(int n);
	
	
	/**
	  * 得到某周周一,n为推迟的周数，0本周周一，-1上周周一，-2是上上周周一，依次类推
	  * @param int n
	  * @return yyyy-MM-dd
	  */
	public  String getMondayOfWeek(int n);
	
	
	

}
